#ifndef __WINDOWSVOICE_INCLUDED
#define __WINDOWSVOICE_INCLUDED

namespace Audio
{
	namespace WindowsPlatform
	{
		class WindowsVoice : public IVoice
		{
		public:
			WindowsVoice(IXAudio2SourceVoice* sourcVoice);
			~WindowsVoice();
			

			virtual void Start();
			virtual void Stop();
			virtual void SubmitData(UINT8* raw, UINT32 size, SubmitBufferType bufferType);

			virtual void SetUserData(void* pv);
			virtual void* GetUserData();

			virtual float GetVolume();
			virtual void  SetVolume(float vol);
			
			virtual BOOL  IsPlaying();
			virtual UINT32 GetSamplePlayed();
		private:
			IXAudio2SourceVoice* xaudio2Voice;
			void*				 userData;

		};
	}
	
}

#endif